/**
 * 动态路由对应处理函数
 */
// 导入 db 操作数据库模块
const db = require('../db/index')

// 发布动态路由对应处理函数
exports.release = function (req, res) {
  console.log(req.body)
  // 定义插入语句
  const insertSQL = 'insert into blog_dynamic set ?' // 当参数与数据库的字段一致的话，可以简写为这种形式
  // 执行 SQL
  db.query(insertSQL, req.body, (err, result) => {
    // SQL语句执行错误
    if (err) return res.cc(err.message)
    // 影响条数不为1
    if (result.affectedRows !== 1) return res.cc('发布失败!')
    // 发布成功
    res.cc('发布成功!', 0)
  })
}

// 获取动态路由对应处理函数
exports.obtain = function (req, res) {
  // 定义查询SQL语句
  const selectSQL = 'select * from blog_dynamic'
  // 执行SQL语句
  db.query(selectSQL, (err, result) => {
    // 执行SQL语句失败
    if (err) return res.cc(err.message)
    // 没有数据
    if (result.length === 0) return res.cc('你还没有发布过动态')
    // 查询成功
    res.send({
      data: result,
      status: 0,
      msg: '获取成功'
    })
  })
}

// 删除动态路由对应处理函数
exports.deleteDynamic = function (req, res) {
  // console.log(req.body)
  // 定义删除SQL语句
  const deleteSQL = 'delete from blog_dynamic where id=?'
  // 执行SQL语句
  db.query(deleteSQL, req.body.id, (err, result) => {
    // SQL语句执行失败
    if (err) return res.cc(err.message)
    // 影响条数不为1
    if (result.affectedRows !== 1) return res.cc('删除失败!')
    // 删除成功
    res.cc('删除成功!', 0)
  })
}

// 已id为参数获取动态详情
exports.getById = function(req, res) {
  // 定义查询SQL语句
  const selectSQL = 'select * from blog_dynamic where id=?'
  // 执行SQL语句
  db.query(selectSQL, req.query.id, (err, result) => {
    // SQL执行失败
    if (err) return res.cc(err.message)
    // 查询不到
    if (result.length === 0) return res.cc('获取失败!')
    // 查询成功
    res.send({
      data: result[0],
      status: 0,
      msg: '获取成功!'
    })
  })
}

// 修改动态路由信息
exports.updateDynamic = function(req, res) {
  console.log(req.body)
  // 定义查询语句
  const selectSQL = 'select * from blog_dynamic where id=?'
  // 执行SQL语句
  db.query(selectSQL, req.body.id, (err, result) => {
    // SQL执行失败
    if (err) return res.cc(err.message)
    // 没有查到
    if (result.length === 0) return res.cc('没有此动态!')
    // 查询成功
    // 定义修改语句
    const updateSQL = 'update blog_dynamic set content=?, start=?, createTime=? where id=?'
    // 执行SQL语句
    db.query(updateSQL, [req.body.content, req.body.start, req.body.createTime, req.body.id], (err, result) => {
      // SQL执行失败
      if (err) return res.cc(err.message)
      // 影响行数不为1
      if (result.affectedRows !== 1) return res.cc('修改失败!')
      // 修改成功
      res.cc('修改成功!', 0)
    })
  })
}

// 修改动态可见性
exports.updateVisibility = function(req, res) {
  console.log(req.body)
  // 定义修改动态可见性的语句
  const updateSQL = 'update blog_dynamic set visibility=? where id=?'
  // 执行SQL
  db.query(updateSQL, [req.body.visibility, req.body.id], (err, result) => {
    // SQL执行错误
    if (err) return res.cc(err.message)
    // 影响函数不为1
    if (result.affectedRows !== 1) return res.cc('修改失败!')
    // 修改成功
    res.cc('修改成功', 0)
  })
}